home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / s_to_z / strc10 / strclass.int < prev    next >
Encoding:
Text File  |  1996-09-15  |  18.2 KB  |  379 lines

  1. UNIT StrClass;
  2.  
  3. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  4.  
  5. INTERFACE
  6.  
  7. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  8.  
  9. USES
  10.  
  11.    WinTypes,
  12.    WinProcs,
  13.    SysUtils,
  14.    Dialogs,
  15.    ContainR;
  16.  
  17. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  18.  
  19. CONST
  20.  
  21.    { id to test for WORD function results }
  22.    WordResError : WORD = $FFFF;
  23.  
  24.    { case usage constants }
  25.  
  26.    Ignore_Case = TRUE;
  27.    Use_Case    = FALSE;
  28.  
  29.    { string comparison function integer results }
  30.  
  31.    Compare_LT = -1;
  32.    Compare_EQ = 0;
  33.    Compare_GT = 1;
  34.  
  35.    { boolean to string conversion types }
  36.  
  37.    bt_NoYes     = 1;
  38.    bt_01        = 2;
  39.    bt_FalseTrue = 3;
  40.    bt_FT        = 4;
  41.    bt_NY        = 5;
  42.    bt_OffOn     = 6;
  43.    bt_Last      = 6;
  44.  
  45.    { special processing flags for delimiter parsing actions }
  46.  
  47.    delim_None   = 0;
  48.    delim_IncDIC = 1;
  49.    delim_IncSIC = 2;
  50.    delim_ExcDIC = 4;
  51.    delim_ExcSIC = 8;
  52.  
  53.    { parameters for the 'FindBetween2Ch' function }
  54.  
  55.    fbc_DelSubStr   = TRUE;
  56.    fbc_LeaveSubStr = FALSE;
  57.  
  58.    fbc_IncDelims = TRUE;
  59.    fbc_ExcDelims = FALSE;
  60.  
  61.    { filesplit related id's }
  62.    fs_Directory = 1;
  63.    fs_Name      = 2;
  64.    fs_extension = 4;
  65.  
  66. TYPE
  67.  
  68.    TStringClass = CLASS(TObject)
  69.       PRIVATE
  70.          { data members }
  71.          FBuffer  : PChar;
  72.          FMaxSize : WORD;
  73.          FLength  : WORD;
  74.          FSizeInc : WORD;
  75.          { private methods }
  76.          FUNCTION AssignFromPChar(Source : PChar; Start : WORD) : PChar;
  77.          FUNCTION AssignMidPChar(Source : PChar; Start,Count : WORD) : PChar;
  78.          FUNCTION AssignLenPChar(Source : PChar; Len : WORD) : PChar;
  79.          FUNCTION AssignNLPChar(Source : PChar) : PChar;
  80.          FUNCTION AssignPadPChar(Source : PChar; Len : WORD; ACh : CHAR) : PChar;
  81.          FUNCTION AssignPChar(Source : PChar) : PChar;
  82.          FUNCTION AssignRightPChar(Source : PChar; Len : WORD) : PChar;
  83.          FUNCTION AssignString(CONST Source : STRING) : PChar;
  84.          FUNCTION AppendLenPChar(Source : PChar; Len : WORD) : PChar;
  85.          FUNCTION AppendMidPChar(Source : PChar; Start,Count : WORD) : PChar;
  86.          FUNCTION AppendNLPChar(Source : PChar) : PChar;
  87.          FUNCTION AppendPadPChar(Source : PChar; Len : WORD; ACh : CHAR) : PChar;
  88.          FUNCTION AppendPChar(Source : PChar) : PChar;
  89.          FUNCTION AppendRightPChar(Source : PChar; Len : WORD) : PChar;
  90.          FUNCTION AppendString(Source : STRING) : PChar;
  91.          FUNCTION AppendTClass(T : TClass) : PChar;
  92.          FUNCTION AppendTObject(T : TObject) : PChar;
  93.          FUNCTION AppendTrimPChar(Source : PChar) : PChar;
  94.          FUNCTION AppendWithTabPChar(Source : PChar) : PChar;
  95.          FUNCTION PrependPChar(Source : PChar) : PChar;
  96.          FUNCTION ComparePChar(Other : PChar) : INTEGER;
  97.          FUNCTION CompareIPChar(Other : PChar) : INTEGER;
  98.          FUNCTION CompareLPChar(Other : PChar; Len : WORD) : INTEGER;
  99.          FUNCTION CompareLIPChar(Other : PChar; Len : WORD) : INTEGER;
  100.          FUNCTION InsertPChar(Source : PChar; Index : WORD) : PChar;
  101.          FUNCTION CanCat(Source : PChar; VAR Extra : WORD) : BOOLEAN;
  102.          FUNCTION CanCopy(Source : PChar; VAR Extra : WORD) : BOOLEAN;
  103.          FUNCTION ChkSizeInc(E : WORD) : WORD;
  104.          FUNCTION CompConv(I : INTEGER) : INTEGER;
  105.          PROCEDURE DisposeStr;
  106.          FUNCTION ExpandBy(ExtraLen : WORD) : BOOLEAN;
  107.          FUNCTION GetCh(w : WORD) : CHAR;
  108.          FUNCTION GetLength : WORD;
  109.          FUNCTION GetMaxSize : WORD;
  110.          FUNCTION GetPChar : PChar;
  111.          FUNCTION GetSizeInc : WORD;
  112.          FUNCTION GetString : STRING;
  113.          PROCEDURE InitDataMembers;
  114.          PROCEDURE SetBufferLen(NewLen : WORD);
  115.          PROCEDURE SetSizeInc(ASize : WORD);
  116.       PUBLIC
  117.          { *** CONSTRUCTORS *** }
  118.          CONSTRUCTOR Create;
  119.          CONSTRUCTOR CreateSize(ASize: WORD);
  120.          CONSTRUCTOR CreateString(CONST Args : ARRAY OF CONST);
  121.          CONSTRUCTOR CreateStringNL(CONST Args : ARRAY OF CONST);
  122.          CONSTRUCTOR CreateBoolean(B : BOOLEAN; StrType : INTEGER);
  123.          { *** DESTRUCTOR *** }
  124.          DESTRUCTOR Destroy;
  125.          { *** COPY related *** }
  126.          FUNCTION Copy : POINTER; VIRTUAL;
  127.          PROCEDURE CopyFrom(Source : TStringClass);
  128.          { clearing methods }
  129.          PROCEDURE Clear;
  130.          PROCEDURE Empty;
  131.          { assign }
  132.          FUNCTION Assign(CONST Args : ARRAY OF CONST) : PChar;
  133.          FUNCTION AssignFrom(CONST Args : ARRAY OF CONST; Start : WORD) : PChar;
  134.          FUNCTION AssignLen(CONST Args : ARRAY OF CONST   ; Len : WORD) : PChar;
  135.          FUNCTION AssignMid(CONST Args : ARRAY OF CONST; Start,Count : WORD) : PChar;
  136.          FUNCTION AssignNL(CONST Args : ARRAY OF CONST) : PChar;
  137.          FUNCTION AssignPad(CONST Args : ARRAY OF CONST; Len : WORD; ACh : CHAR) : PChar;
  138.          FUNCTION AssignRight(CONST Args : ARRAY OF CONST; Len : WORD) : PChar;
  139.          FUNCTION AssignTrim(CONST Args : ARRAY OF CONST) : PChar;
  140.          { appending data to the data }
  141.          FUNCTION Append(CONST Args : ARRAY OF CONST) : PChar;
  142.          FUNCTION AppendBoolean(B : BOOLEAN; bt : INTEGER) : PChar;
  143.          FUNCTION AppendByte(B : BYTE) : PChar;
  144.          FUNCTION AppendCh(C : CHAR) : PChar;
  145.          FUNCTION AppendDIC(CONST Args : ARRAY OF CONST) : PChar;
  146.          FUNCTION AppendDouble(D : DOUBLE; Width,Places : BYTE) : PChar;
  147.          FUNCTION AppendDoubleTrim(D : DOUBLE) : PChar;
  148.          FUNCTION AppendExt(E : EXTENDED; Width,Places : BYTE) : PChar;
  149.          FUNCTION AppendExtTrim(E : EXTENDED) : PChar;
  150.          FUNCTION AppendLen(CONST Args : ARRAY OF CONST; Len : WORD) : PChar;
  151.          FUNCTION AppendLong(L : LONGINT) : PChar;
  152.          FUNCTION AppendMid(CONST Args : ARRAY OF CONST; Start,Count : WORD) : PChar;
  153.          FUNCTION AppendNL(CONST Args : ARRAY OF CONST) : PChar;
  154.          FUNCTION AppendPad(CONST Args : ARRAY OF CONST; Len : WORD; ACh : CHAR) : PChar;
  155.          FUNCTION AppendPtr(P : POINTER) : PChar;
  156.          FUNCTION AppendReal(R : REAL; Width,Places : BYTE) : PChar;
  157.          FUNCTION AppendRight(CONST Args : ARRAY OF CONST; Len : WORD) : PChar;
  158.          FUNCTION AppendSIC(CONST Args : ARRAY OF CONST) : PChar;
  159.          FUNCTION AppendTrim(CONST Args : ARRAY OF CONST) : PChar;
  160.          FUNCTION AppendWithTab(CONST Args : ARRAY OF CONST) : PChar;
  161.          FUNCTION NLAppend(CONST Args : ARRAY OF CONST) : PChar;
  162.          FUNCTION Prepend(CONST Args : ARRAY OF CONST) : PChar;
  163.          { *** Character/array element related *** }
  164.          FUNCTION FirstNonSpaceCh(VAR ACh : CHAR) : WORD;
  165.          FUNCTION HasCh(ACh : CHAR; VAR Pos : WORD) : BOOLEAN;
  166.          FUNCTION IsCh(W : WORD; ACh : CHAR) : BOOLEAN;
  167.          FUNCTION IsFirstCh(ACh : CHAR) : BOOLEAN;
  168.          FUNCTION IsLastCh(ACh : CHAR) : BOOLEAN;
  169.          FUNCTION LastNonSpaceCh(VAR ACh : CHAR) : WORD;
  170.          PROCEDURE RemoveLastCh;
  171.          PROCEDURE SetCh(W : WORD; ACh : CHAR);
  172.          { *** WITH OTHER DATA TYPES *** }
  173.          FUNCTION FromBoolean(B : BOOLEAN; bt : INTEGER) : PChar;
  174.          FUNCTION FromByte(B : BYTE) : PChar;
  175.          FUNCTION FromChar(C : CHAR) : PChar;
  176.          FUNCTION FromDouble(D : DOUBLE; Width,Places : BYTE) : PChar;
  177.          FUNCTION FromDoubleTrim(D : DOUBLE) : PChar;
  178.          FUNCTION FromExt(E : EXTENDED; Width,Places : BYTE) : PChar;
  179.          FUNCTION FromExtTrim(E : EXTENDED) : PChar;
  180.          FUNCTION FromLong(L : LONGINT) : PChar;
  181.          FUNCTION FromPtr(P : POINTER) : PChar;
  182.          FUNCTION FromReal(R : REAL; Width,Places : BYTE) : PChar;
  183.          FUNCTION FromRealTrim(R : REAL) : PChar;
  184.          FUNCTION FromRGB(C : TColorRef) : PChar;
  185.          FUNCTION HexFromByte(B : BYTE) : PChar;
  186.          FUNCTION HexFromLong(L : LONGINT) : PChar;
  187.          FUNCTION HexFromPtr(P : POINTER) : PChar;
  188.          FUNCTION HexFromWord(W : WORD) : PChar;
  189.          FUNCTION ToBoolean(VAR B : BOOLEAN) : BOOLEAN;
  190.          FUNCTION ToByte(VAR B : BYTE) : BOOLEAN;
  191.          FUNCTION ToChar(VAR C : CHAR) : BOOLEAN;
  192.          FUNCTION ToDouble(VAR D : DOUBLE) : BOOLEAN;
  193.          FUNCTION ToExt(VAR E : EXTENDED) : BOOLEAN;
  194.          FUNCTION ToInteger(VAR I : INTEGER) : BOOLEAN;
  195.          FUNCTION ToLong(VAR L : LONGINT) : BOOLEAN;
  196.          FUNCTION ToReal(VAR R : REAL) : BOOLEAN;
  197.          FUNCTION ToRGB(VAR C : TColorRef) : BOOLEAN;
  198.          FUNCTION ToWord(VAR W : WORD) : BOOLEAN;
  199.          { equivalent SysUtils type functions }
  200.          FUNCTION AppendStr(CONST S: string) : PChar;
  201.          FUNCTION UpperCase(CONST S: string) : PChar;
  202.          FUNCTION LowerCase(const S: string): PChar;
  203.          FUNCTION CompareStr(CONST S2: STRING): Integer;
  204.          FUNCTION CompareText(CONST S2: STRING): Integer;
  205.          FUNCTION AnsiUpperCase(CONST S : STRING) : PChar;
  206.          FUNCTION AnsiLowerCase(CONST S : STRING) : PChar;
  207.          FUNCTION AnsiCompareStr(CONST S2: STRING): Integer;
  208.          FUNCTION AnsiCompareText(CONST S2: STRING): Integer;
  209.          FUNCTION IsValidIdent: Boolean;
  210.          FUNCTION IntToStr(Value: Longint): PChar;
  211.          FUNCTION IntToHex(Value: Longint; Digits: Integer): PChar;
  212.          FUNCTION StrToInt : Longint;
  213.          FUNCTION StrToIntDef(Default: Longint): Longint;
  214.          FUNCTION LoadStr(Ident: Word): PChar;
  215.          FUNCTION FmtLoadStr(Ident: Word; CONST Args: ARRAY OF CONST): PChar;
  216.          FUNCTION Format(CONST Format: STRING; CONST Args: ARRAY OF CONST): PChar;
  217.          FUNCTION FloatToStr(Value: Extended): PChar;
  218.          FUNCTION FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): PChar;
  219.          FUNCTION FormatFloat(const Format: STRING; Value: Extended): PChar;
  220.          FUNCTION StrToFloat : Extended;
  221.          { *** equivalent PChar type 'STRINGS' unit FUNCTIONs *** }
  222.          FUNCTION StrCat(Source : PChar) : PChar;
  223.          FUNCTION StrComp(Str2 : PChar) : INTEGER;
  224.          FUNCTION StrCopy(Source : PChar) : PChar;
  225.          FUNCTION StrECopy(Source : PChar) : PChar;
  226.          FUNCTION StrEnd : PChar;
  227.          FUNCTION StrIComp(Str2 : PChar) : INTEGER;
  228.          FUNCTION StrLCat(Source : PChar; MaxLen : WORD) : PChar;
  229.          FUNCTION StrLIComp(Str2 : PChar; MaxLen : WORD) : INTEGER;
  230.          FUNCTION StrLComp(Str2 : PChar; MaxLen : WORD) : INTEGER;
  231.          FUNCTION StrLCopy(Str2 : PChar; MaxLen : WORD) : INTEGER;
  232.          FUNCTION StrLen : WORD;
  233.          FUNCTION StrLower : PChar;
  234.          FUNCTION StrMove(Source : PChar; Count : WORD) : PChar;
  235.          FUNCTION StrPas : STRING;
  236.          FUNCTION StrPCopy(Source : STRING) : PChar;
  237.          FUNCTION StrPos(Str2 : PChar) : PChar;
  238.          FUNCTION StrRScan(Chr : CHAR) : PChar;
  239.          FUNCTION StrScan(Chr : CHAR) : PChar;
  240.          FUNCTION StrUpper : PChar;
  241.          { *** COMPARISON METHODS *** }
  242.          FUNCTION Compare(CONST Args : ARRAY OF CONST) : INTEGER;
  243.          FUNCTION CompareI(CONST Args : ARRAY OF CONST) : INTEGER;
  244.          FUNCTION CompareL(CONST Args : ARRAY OF CONST; Len : WORD) : INTEGER;
  245.          FUNCTION CompareLI(CONST Args : ARRAY OF CONST; Len : WORD) : INTEGER;
  246.          FUNCTION CompareLong(L : LONGINT) : INTEGER;
  247.          FUNCTION CompareDouble(D : DOUBLE) : INTEGER;
  248.          FUNCTION CompareExt(E : EXTENDED) : INTEGER;
  249.          FUNCTION IsSame(CONST Args : ARRAY OF CONST) : BOOLEAN;
  250.          FUNCTION IsSameI(CONST Args : ARRAY OF CONST; Len : WORD) : BOOLEAN;
  251.          FUNCTION IsSameL(CONST Args : ARRAY OF CONST; Len : WORD) : BOOLEAN;
  252.          FUNCTION IsSameLI(CONST Args : ARRAY OF CONST; Len : WORD) : BOOLEAN;
  253.          FUNCTION Includes(CONST Args : ARRAY OF CONST) : BOOLEAN;
  254.          FUNCTION Within(CONST Args : ARRAY OF CONST) : BOOLEAN;
  255.          { *** TRIM related *** }
  256.          FUNCTION Delete(Index,Count : WORD) : PChar;
  257.          FUNCTION Insert(CONST Args : ARRAY OF CONST; Index : WORD) : PChar;
  258.          FUNCTION InsertL(CONST Args : ARRAY OF CONST; Len,Index : WORD) : PChar;
  259.          FUNCTION PadCentre(NewLen : WORD; ACh : CHAR) : PChar;
  260.          FUNCTION PadEnd(NewLen : WORD; ACh : CHAR) : PChar;
  261.          FUNCTION PadFront(NewLen : WORD; ACh : CHAR) : PChar;
  262.          FUNCTION RemoveDIC : PChar;
  263.          FUNCTION RemoveSIC : PChar;
  264.          FUNCTION Trim : PChar;
  265.          FUNCTION TrimEnd : PChar;
  266.          FUNCTION TrimFront : PChar;
  267.          FUNCTION TrimZero : PChar;
  268.          { command line related }
  269.          FUNCTION FindCmdLine : PChar;
  270.          FUNCTION FindCmdLineAndParse(IncExeParam : BOOLEAN;
  271.                                       VAR AList   : TObjectContainer) : PChar;
  272.          FUNCTION FindCmdLineParam(Idx : INTEGER) : PChar;
  273.          { *** RESOURCE STRING LOADING *** }
  274.          FUNCTION AppendStringRes(Instance : THandle; Id : WORD) : PChar;
  275.          FUNCTION LoadStringRes(Instance : THandle; Id : WORD) : PChar;
  276.          { *** INI file related *** }
  277.          FUNCTION ReadIniKeyword(CONST IniFileArgs : ARRAY OF CONST;
  278.                                  CONST SectionArgs : ARRAY OF CONST;
  279.                                  CONST KeyWordArgs : ARRAY OF CONST) : WORD;
  280.          FUNCTION WriteIniKeyword(CONST IniFileArgs : ARRAY OF CONST;
  281.                                   CONST SectionArgs : ARRAY OF CONST;
  282.                                   CONST KeyWordArgs : ARRAY OF CONST) : WORD;
  283.          FUNCTION FindIniSectionKeywords(CONST IniFileArgs,
  284.                                                SectionArgs  : ARRAY OF CONST;
  285.                                          VAR   AList : TObjectContainer) : WORD;
  286.          { *** DOS PATH/FILE NAME RELATED *** }
  287.          FUNCTION AddBackSlash : PChar;
  288.          FUNCTION BuildPathName(CONST DirArgs,
  289.                                       FileNameArgs,
  290.                                       ExtArgs : ARRAY OF CONST) : PChar;
  291.          FUNCTION CreateDirectory : BOOLEAN;
  292.          FUNCTION DefaultExtension(CONST Args : ARRAY OF CONST) : PChar;
  293.          FUNCTION ExpandFileName : PChar;
  294.          FUNCTION FindCurrentDir : PChar;
  295.          FUNCTION ForceExtension(CONST Args : ARRAY OF CONST) : PChar;
  296.          FUNCTION HasBackSlash : BOOLEAN;
  297.          FUNCTION HasDrive : BOOLEAN;
  298.          FUNCTION HasExtension(VAR DotPos : WORD) : BOOLEAN;
  299.          FUNCTION HasFileName : BOOLEAN;
  300.          FUNCTION HasDirectory : BOOLEAN;
  301.          FUNCTION DirectoryExists : BOOLEAN;
  302.          FUNCTION DriveExists : BOOLEAN;
  303.          FUNCTION FileExists : BOOLEAN;
  304.          FUNCTION FileSplit(VAR ADirObj,ANameObj,AnExtObj : TStringClass) : WORD;
  305.          FUNCTION JustExtension(CONST Args : ARRAY OF CONST) : PChar;
  306.          FUNCTION JustFileName(CONST Args : ARRAY OF CONST) : PChar;
  307.          FUNCTION JustName(CONST Args : ARRAY OF CONST) : PChar;
  308.          FUNCTION JustDirectory(CONST Args : ARRAY OF CONST) : PChar;
  309.          FUNCTION SetCurDir : BOOLEAN;
  310.          { *** SEARCH RELATED FUNCTIONS *** }
  311.          FUNCTION ChCount(ACh : CHAR) : WORD;
  312.          FUNCTION FindBetween2Ch(FirstCh,
  313.                                  SecondCh        : CHAR;
  314.                                  StartFrom       : WORD;
  315.                                  VAR SubStrStart : WORD;
  316.                                  VAR SubStrLen   : WORD;
  317.                                  CutSubStr,
  318.                                  IncDelims       : BOOLEAN;
  319.                                  VAR ASubStr     : TStringClass) : BOOLEAN;
  320.          FUNCTION FindFirst(CONST SubArgs : ARRAY OF CONST; VAR P : WORD) : BOOLEAN;
  321.          FUNCTION FindFirstCh(ACh : CHAR; VAR P : WORD) : BOOLEAN;
  322.          FUNCTION FindLast(CONST SubArgs : ARRAY OF CONST; VAR P : WORD) : BOOLEAN;
  323.          FUNCTION FindLastCh(ACh : CHAR; VAR P : WORD) : BOOLEAN;
  324.          FUNCTION FindNext(CONST SubArgs : ARRAY OF CONST;
  325.                            StartPos : WORD;
  326.                            VAR NextPos : WORD) : BOOLEAN;
  327.          FUNCTION FindNextCh(ACh : CHAR; StartPos : WORD; VAR NextPos : WORD) : BOOLEAN;
  328.          FUNCTION FindPrev(CONST SubArgs : ARRAY OF CONST;
  329.                            StartPos : WORD; VAR PrevPos : WORD) : BOOLEAN;
  330.          FUNCTION FindPrevCh(ACh : CHAR; StartPos : WORD; VAR PrevPos : WORD) : BOOLEAN;
  331.          FUNCTION SubStrCount(CONST SubArgs : ARRAY OF CONST) : WORD;
  332.          { *** Case related *** }
  333.          FUNCTION FirstCharToUpper : PChar;
  334.          FUNCTION IsAlphaNumeric : BOOLEAN;
  335.          FUNCTION ToLower : PChar;
  336.          FUNCTION ToUpper : PChar;
  337.          { *** Search & replace related methods *** }
  338.          FUNCTION ReplaceAll(CONST OldArgs,NewArgs : ARRAY OF CONST) : PChar;
  339.          FUNCTION ReplaceFirst(CONST OldArgs,NewArgs : ARRAY OF CONST) : PChar;
  340.          FUNCTION ReplaceLast(CONST OldArgs,NewArgs : ARRAY OF CONST) : PChar;
  341.          FUNCTION ReplaceChAll(OldCh,NewCh : CHAR) : PChar;
  342.          FUNCTION ReplaceChFirst(OldCh,NewCh : CHAR) : PChar;
  343.          FUNCTION ReplaceChLast(OldCh,NewCh : CHAR) : PChar;
  344.          { *** PARSER RELATED *** }
  345.          FUNCTION FirstParseDelim(CONST Args : ARRAY OF CONST;
  346.                                   DelimCh      : CHAR;
  347.                                   VAR DelimPos : WORD) : BOOLEAN;
  348.          FUNCTION NextParseDelim(CONST Args : ARRAY OF CONST;
  349.                                  DelimCh          : CHAR;
  350.                                  StartPos         : WORD;
  351.                                  VAR NextDelimPos : WORD) : BOOLEAN;
  352.          FUNCTION ParseDelimCount(DelimCh : CHAR) : WORD;
  353.          FUNCTION ParseDelimToList(DelimCh   : CHAR;
  354.                                    Special   : INTEGER;
  355.                                    VAR AList : TObjectContainer) : WORD;
  356.          FUNCTION ParsePosToList(VAR PosArray;
  357.                                  PosCt : WORD;
  358.                                  VAR AList : TObjectContainer) : WORD;
  359.          { **** OBJECT PROPERTIES *** }
  360.          PROPERTY Ch[w : WORD] : CHAR READ GetCh;
  361.          PROPERTY Length : WORD READ GetLength;
  362.          PROPERTY MaxSize : WORD READ GetMaxSize;
  363.          PROPERTY SizeInc : WORD READ GetSizeInc WRITE SetSizeInc;
  364.          PROPERTY Text : STRING READ GetString;
  365.          PROPERTY ZString : PChar READ GetPChar;
  366.    END;
  367.  
  368. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  369.  
  370.    EStringClass = class(Exception);
  371.  
  372. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  373.  
  374.    FUNCTION GetScFunctionName(Id : WORD) : STRING;
  375.  
  376. { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
  377.  
  378.  
  379.